#include <iostream>
#include <type_traits>

using namespace std;
#define TAG64(c1, c2, c3, c4, c5, c6, c7, c8)
template <typename T>
uint64_t getTag64(T&& t)
{
	cout << typeid(T).name() << endl;
	cout << typeid(t).name() << endl;
	return 0;
}

#include "enum.h"
#include "define.h"

const char* str = "he";

int main()
{
	cout << getTyStr(Ty_1) << "(" << Ty_1 << ")" << endl;
	cout << getTyStr(Ty_2) << "(" << Ty_2 << ")" << endl;
	cout << getTyStr(Ty_3) << "(" << Ty_3 << ")" << endl;
	cout << getTyStr(Ty_4) << "(" << Ty_4 << ")" << endl;

	getTag64("ds");
	int i = 0;
	switch (i)
	{
		case uint64_t('c') >> 1:
			break;
		default:
		break;
	}
	return 0;
}